A redundant array of inexpensive disks (RAID) architecture uses a group of data storage units, such as hard disks, to provide fault-tolerant data storage. The RAID architecture uses a forward error correction (FEC) code and extra data storage units to protect information from errors and disk failures. The information symbols may be bits, bytes or words. The information symbols can be encoded to form code symbols that include data and checksum or parity symbols. For systematic forward error correcting codes, the information symbols can be represented explicitly in the data symbol portion of a code symbol.
Reed-Solomon codes can be used in RAID architectures (RS-RAID) to tolerate a number of failures of storage units equal to the number of checksum symbols. For example, a quadruple-error correcting RS-RAID architecture that allocates 20 storage units for data and 4 storage units for checksums can tolerate failures in up to four storage devices, inclusive.
An RS-RAID architecture normally uses a single RAID controller to protect the data symbols that are written to the data storage units. When a single RAID controller is used to perform the checksum, encoding, and decoding calculations, the throughput or data storage and retrieval rate of the RAID architecture may be reduced relative to a non-RAID and fault-intolerant data storage architecture. Accordingly, a high throughput, fault-tolerant distributed data storage architecture may be desirable.